package com.mdb.open.trade.domain.dto.trade;


/*
* Copyright (C), 2017-2019 澳发科技(MDB)
* FileName: TfLoanContractService.java
* Author:   you.yichao
* Date:     2019-10-11
* History:
* <author>          <time>          <version>          <desc>
* you.yichao         2019-10-11          V1.00             代码生成器初始生成代码
* -----------------------------------------------------------
* 作者姓名           修改时间           版本号            描述
*/

import com.mdb.bc.api.data.DataObjectBase;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
* 类描述：
*  融资借据单表数据传输类
*
* @author you.yichao
* @date 2019-10-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="LoanContractDto", description="融资借据单表Dto对象")
public class LoanContractDto extends DataObjectBase {

    private static final long serialVersionUID = 1L;
    /**
    * 唯一性Id
    */
    @ApiModelProperty(value = "唯一性Id")
    @NotNull(message = "唯一性Id不允许为空")
    private Integer id;

    /**
    * 融资单号
    */
    @ApiModelProperty(value = "融资单号")
    @NotBlank(message = "融资单号不允许为空")
    private String applyOrderNo;

    /**
    * 借据单号
    */
    @ApiModelProperty(value = "借据单号")
    @NotBlank(message = "借据单号不允许为空")
    private String loanContractNo;

    /**
    * 商户业务编号
    */
    @ApiModelProperty(value = "商户业务编号")
    @NotBlank(message = "商户业务编号不允许为空")
    private String businessNo;

    /**
    * 客户编码
    */
    @ApiModelProperty(value = "客户编码")
    @NotBlank(message = "客户编码不允许为空")
    private String customerCode;

    /**
    * 客户名称
    */
    @ApiModelProperty(value = "客户名称")
    @NotBlank(message = "客户名称不允许为空")
    private String customerName;

    /**
    * 商户编号
    */
    @ApiModelProperty(value = "商户编号")
    @NotBlank(message = "商户编号不允许为空")
    private String merchantNo;

    /**
    * 商户名称
    */
    @ApiModelProperty(value = "商户名称")
    @NotBlank(message = "商户名称不允许为空")
    private String merchantName;

    /**
    * 商户平台子账号
    */
    @ApiModelProperty(value = "商户平台子账号")
    @NotBlank(message = "商户平台子账号不允许为空")
    private String merchantSubAcc;

    /**
    * 签署到期日
    */
    @ApiModelProperty(value = "签署到期日")
    @NotNull(message = "签署到期日不允许为空")
    private LocalDateTime expireDate;

    /**
    * 融资期限 天为单位
    */
    @ApiModelProperty(value = "融资期限 天为单位")
    private Integer loanTerm;

    /**
    * 批复日
    */
    @ApiModelProperty(value = "批复日")
    @NotNull(message = "批复日不允许为空")
    private LocalDateTime approveDate;

    /**
    * 签署日
    */
    @ApiModelProperty(value = "签署日")
    private LocalDateTime signDate;

    /**
    * 利息总费率
    */
    @ApiModelProperty(value = "利息总费率")
    private BigDecimal totalRate;

    /**
    * 贷款利率
    */
    @ApiModelProperty(value = "贷款利率")
    private BigDecimal feeRate;

    /**
    * 浮动利差
    */
    @ApiModelProperty(value = "浮动利差")
    private BigDecimal addRate;

    /**
    * 逾期总利率
    */
    @ApiModelProperty(value = "逾期总利率")
    private BigDecimal overdueTotalRate;

    /**
    * 逾期利率
    */
    @ApiModelProperty(value = "逾期利率")
    private BigDecimal overdueRate;

    /**
    * 逾期浮动利差
    */
    @ApiModelProperty(value = "逾期浮动利差")
    private BigDecimal addOverdueRate;

    /**
    * 币种
    */
    @ApiModelProperty(value = "币种")
    @NotBlank(message = "币种不允许为空")
    private String ccy;

    /**
    * 核心贷款放款编号
    */
    @ApiModelProperty(value = "核心贷款放款编号")
    private String bankLoanNo;

    /**
    * 额度编号
    */
    @ApiModelProperty(value = "额度编号")
    private String limitNo;

    /**
    * 额度流水编号
    */
    @ApiModelProperty(value = "额度流水编号")
    private String limitSeqNo;

    /**
    * 申请金额
    */
    @ApiModelProperty(value = "申请金额")
    @NotNull(message = "申请金额不允许为空")
    private BigDecimal applyAmount;

    /**
    * 批复金额
    */
    @ApiModelProperty(value = "批复金额")
    @NotNull(message = "批复金额不允许为空")
    private BigDecimal approveAmount;

    /**
    * 实际贷款额度
    */
    @ApiModelProperty(value = "实际贷款额度")
    private BigDecimal loanAmount;

    /**
    * 预估利息
    */
    @ApiModelProperty(value = "预估利息")
    private BigDecimal interest;

    /**
    * 还款日
    */
    @ApiModelProperty(value = "还款日")
    private LocalDateTime repaymentDate;

    /**
    * 状态
    */
    @ApiModelProperty(value = "状态")
    @NotBlank(message = "状态不允许为空")
    private String status;

    /**
    * 担保方式
    */
    @ApiModelProperty(value = "担保方式")
    private String guaranteeType;

    /**
    * 拒绝原因
    */
    @ApiModelProperty(value = "拒绝原因")
    private String rejectReason;

}
